package horncomb.bpm.process.core;

/**
 * @author Daniel
 */
public interface Transition {

	/**
	 * @param context
	 */
	public void transit(ExecutionContext context);

	/**
	 * @return the id
	 */
	public String getId();

	/**
	 * @return the name
	 */
	public String getName();

	public EnterableState getTargetState();

	public LeavableState getSourceState();

	/**
	 * @param processDefinition
	 *            the processDefinition to set
	 */
	public void setProcessDefinition(ProcessDefinition processDefinition);

	public boolean checkBeforeTrasint(ExecutionContext context);

}